/*
                       *********************
*************************** C SOURCE FILE ******************************
**                     *********************                          **


#define _MAIN_C_SRC

/****************************************************************************/
/**                                                                        **/
/**                                     MODULES USED                       **/
/**                                                                        **/
/****************************************************************************/

#include "main.h"

/****************************************************************************/
/**                                                                        **/
/**                             DEFINITIONS AND MACROS                     **/
/**                                                                        **/
/****************************************************************************/


/****************************************************************************/
/**                                                                        **/
/**                           TYPEDEFS AND STRUCTURES                      **/
/**                                                                        **/
/****************************************************************************/


/****************************************************************************/
/**                                                                        **/
/**                      PROTOTYPES OF LOCAL FUNCTIONS                     **/
/**                                                                        **/
/****************************************************************************/

int arraystrlen(char *str[],int cnt);

/****************************************************************************/
/**                                                                        **/
/**                                 EXPORTED VARIABLES                     **/
/**                                                                        **/
/****************************************************************************/



/****************************************************************************/
/**                                                                        **/
/**                                 GLOBAL VARIABLES                       **/
/**                                                                        **/
/****************************************************************************/



/****************************************************************************/
/**                                                                        **/
/**                                  EXPORTED FUNCTIONS                    **/
/**                                                                        **/
/****************************************************************************/



/****************************************************************************/
/**                                                                        **/
/**                                    LOCAL FUNCTIONS                     **/
/**                                                                        **/
/****************************************************************************/

int main(int ac,char *av[])
{
	int i,j,len,number;
	char *buf;
	char *point;
	
/* Check Error */
	if(ac<4)
	{
		printf("Error, argumment must more than two\n");       
		return 0;
	}

	for(i=0;i<ac;i++)
	{
		if(i==(ac-1))
		{
			number = av[i][0];
			if((number<'0')||(number>'1'))
			{
				printf("Error, the last argumment must be '0' or '1'\n");
				return 0;
			}
		}
	}
	
/* Reserve the memmory */	
	len = arraystrlen(++av,ac-2);
	buf = (char*)malloc(sizeof(len));
	point = buf;
	
	
/* Check mode */
	if(number == '0')
	{
		dic(av,ac-2);
	}
	else if(number == '1')
	{
		dic(av,ac-2);
		for(i=0;i<ac-2;i++)
		{
			reverse(av[i]);
		}
	}

/* Load argv to buffer */
	for(i=0;i<ac-2;i++)
	{
		for(j=0;j<strlenge(av[i]);j++)
		{
			if(av[i][j]=='\0')
			{
				*point = ' ';
			}
			else
			{
				*point = av[i][j];
			}
			point++;
		}
	}

/* print string */	
	printf("\n%s\n",buf);
	free(buf);

	return 0;
}

/* Find lenge of array of string */
int arraystrlen(char *str[],int cnt)
{
	int i,j;
	int count=0;
	for(i=0;i<cnt;i++)
	{	
		for(j=0;str[i][j]!='\0';j++);
		j++;
		count+=j;
	}
	return(count);
}


/****************************************************************************/
/**                                                                        **/
/**                                  EOF                                   **/
/**                                                                        **/
/****************************************************************************/
